#pragma once

#include "Turret.h"
#include "SuperTurret.h"
#include "WeaponCapsule.h"
#include "EnemyRed.h"
#include "EnemyRedForest.h"
#include "EnemyWhite.h"
#include "EnemyRed.h"
#include "PowerUp.h"
#include "ExplosionManager.h"
#include "Background.h"
#include "Contra.h"
#include "MapGround.h"

class CStageManager
{
private:
	std::vector<CTurret*> _ListTurret;
	std::vector<CSuperTurret*> _ListSuperTurret;
	std::vector<CWeaponCapsule*> _ListWeaponCapsule;
	std::vector<CPowerUp*> _ListPowerUp;
	std::vector<CEnemyRed*> _ListEnemyRed;
	std::vector<CEnemyRedForest*> _ListEnemyRedForest;
	std::vector<CEnemy_White*> _ListEnemyWhite;
	std::vector<CExplosion*> _ListExplosion;
	std::vector<CMapGround*> _ListMapGround;
	CContra *_Contra;
	CBackground *_BackGround;
	int _Stage;
public:
	CStageManager(void);
	~CStageManager(void);
	void ClearAllObject();
	void ReadBackgroundFile();
	void ReadObjectFile();
	void Render(D3DXVECTOR2 ContraPositon);
	void SetStage(int Stage);
	std::vector<CMapGround*> getMapGround(){ return _ListMapGround; }
	std::vector<CSuperTurret*> getSuperTurret(){ return _ListSuperTurret; }
	std::vector<CCharacter*> getObjects();
};